#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2020/8/20 6:28 下午
# @Author  : wancheng.b
# @File    : python_list.py
# @Software: PyCharm

# 列表函数,max()获取列表的最大值,min()最小值,list(seq)将元组转换成list,len()获取列表长度
list1 = [1, 2, 3]
list2 = ['a', 's', 'd']
print(max(list1))
print(min(list2))

# 列表方法
# append(obj),在list末尾添加元素对象
list_append = [1, 2, 3]
list_append.append(4)
print(list_append)

# count(obj),统计元素在列表中出现的次数
list_count = [1, 2, 1, 3, 1]
print(list_count.count(1))

# extend(seq),在list中末尾扩展另一个list
list_extend = [1, 2, 3]
list_new = [1, 'a']
list_extend.extend(list_new)
print(list_extend)

# index(obj),在list中查找某个值在list中第一次出现的索引
list_index = [1, 3, 9, 5]
print(list_index.index(9))

# insert(),在列表中指定的索引位置插入对象
list_insert = ['a', 's', 'd']
list_insert.insert(1, 'new')
print(list_insert)

# pop(index)函数，删除list指定索引的元素，默认为最后一个元素（-1）
list_pop = [1, 2, 3, 4]
list_pop.pop(2)
print(list_pop)

# remove(obj),移除list中的指定对象
list_remove = ['as', 'old', 'd']
list_remove.remove('old')
print(list_remove)

# reverse(list),将列表翻转
list_reverse = [1, 2, 3, 4, 5]
list_reverse.reverse()
print(list_reverse)

# sort(key=None, reerse=False),对源列表排序，如果key指定参数，则按照比较函数排序，reverse默认为False升序
# key -- 主要是用来进行比较的元素，只有一个参数，具体的函数的参数就是取自于可迭代对象中，指定可迭代对象中的一个元素来进行排序。
# key为None时
list_sort = [6, 1, 2, 3, 4, 5]
list_sort.sort()
print(list_sort)
# key不为None时,例如按照第二个元素来排序
list_sort1 = [(1, 2), (2, 3), (3, 4)]


def second(arr):
    return arr[1]


list_sort1.sort(key=second, reverse=True)
print(list_sort1)

# clear(),清空list
list_clear = [1, 2, 3]
list_clear.clear()
print(list_clear)

# copy()复制列表
list_copy = [1, 2, 3]
list_copy1 = list_copy.copy()
print(list_copy1)

# ******重点******  :截取,第一个:表示起始位，第二个:表示正序还是反序，默认为1正序，-1为反序
# b=a[i:j:k]
#结果为yth  。意思为从下标i个开始到下标j-1结束，步长为k，(k为整数且不能等于0)，第一个冒号满足左闭右开原则 。
#当i，j出现异号时，可以全转换成正数去理解，负数中的出现-len(a)-1时，就不能转正数看待了，可以转换成负数去理解
#k>0时，i默认为0，j默认为len(a) ; k<0时，i默认为-1，j默认为-len(a)-1，-len(a)-1只作为无法取到的边界，不可转正
print('******:********')
arr = [1, 2, 3, 4, 5]
print(arr[1:])
print(arr[:4])
print(arr[-6:-1])
print(arr[::-1])
print(arr[0:])
print(arr[1:-2])
print(arr[1:0:-1])
# print(arr[1:3:-1])
